Wi-Fi networks, such as the Institute for Electrical and Electronics Engineers (IEEE) 802.11a, 802.11b, 802.11n or 802.11 ac networks are now commonly used within the home. In addition to providing network connectivity to computing devices such as laptop computers and smartphones, these home networks can provide connectivity to various “smart” devices in the home, such as thermostats, water heaters, light control units, etc. To gain access to the home network, a new device generally must first be “provisioned.” Provisioning is a process by which a Wi-Fi-enabled device obtains network credentials that enable secure connection to the home network. Once connected, the device can access various services, such as Internet services, through the Wi-Fi access point (AP). As just one example, if a Wi-Fi-enabled thermostat is connected to the home network, a home owner may use an application running on a smartphone to remotely control the temperature in his or her home via the Internet.
For conventional home networks, a user (e.g., home owner, home resident, etc.) typically must perform various actions to provision a Wi-Fi-enabled device. A first, “microAP-based” technique may be used if a device to be connected supports a microAP mode in which the device can host its own Wi-Fi network. With this technique, appropriate security credentials are used to associate a client (e.g., a laptop or other personal computer) with a wireless network hosted by the device to be provisioned/connected. Next, the user opens a web browser on the client and starts a provisioning web application. The user then views scan results provided by the device and selects the desired home network. Finally, the user provides the appropriate home network security credentials, and verifies that the device can connect to the home network.
A second technique, known as “Wi-Fi Protected Setup” or “WPS,” includes PIN code and push button varieties. WPS may be used if both the AP of the home network and the device to be provisioned/connected support WPS-based provisioning. With WPS PIN code provisioning, a user may enter a printed and/or displayed numeric PIN code displayed on the device at the AP of the home network (e.g., via a web interface). With push button WPS, a user presses a physical button on both the AP of the home network and the device or presses a “virtual button” displayed via a user interface at the home network AP. The two buttons are generally pressed within a time window, which may be inconvenient when the AP and the device are not in close proximity. Moreover, the button on the device to be provisioned/connected may not be easily accessible (e.g., if the device is a water heater).
Since smart devices may not be designed to easily accept user input (e.g., “headless” devices without keyboards, displays, etc.) provisioning these devices may be accomplished by first connecting the smart device to device that has user input capabilities, and using this device to provision the smart device. Furthermore, home networks may include a mix of devices implementing these various provisioning systems. Ensuring that these mixed device networks allow for provisioning of new devices while not impacting devices already provisioned and connected to the network presents design challenges. Furthermore, with regards to microAP provisioning, supporting dual AP and station roles also presents challenges for maintaining support for devices connected to a device while operating in microAP mode while gathering updated information about APs available to the microAP while operating as a station.